package com.dks.mapper;

import com.dks.dto.AttendanceCourseDto;
import com.dks.dto.CourseSignDto;
import com.dks.dto.TeacherToDoDto;
import com.dks.dto.WaitCourseDto;
import com.dks.dto.student.StudentTodoDto;
import com.dks.models.Course;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface CourseMapper{

    Integer insert(Course course);

    Integer update(Course course);

    Integer updateCount(Course course);

    Integer delete(@Param("id") Integer id);

    Course select(@Param("id") Integer id);

    Integer cntByMap(Map<String, Object> map);

    List<Integer> getByMap(Map<String, Object> map);

    List<Course> getByMapList(Map<String, Object> map);

    Integer updateByCode(Course course);

    Course selectByBfCode(@Param("bfCode") String bfCode);

    List<Course> getList(@Param("courseName")String courseName, @Param("courseCategory")String courseCategory, @Param("courseStage")String courseStage);

    List<CourseSignDto> getCourseSignList(Map<String, Object> map);

    List<WaitCourseDto> getWaitCourseList(@Param("parentId") Integer parentId);

    List<CourseSignDto> getAttendCourseList(@Param("parentId") Integer parentId);

    List<CourseSignDto> getSingleDayCourseList(Map<String, Object> map);

    List<StudentTodoDto> getStudentTodoList(Map<String, Object> map);

    List<AttendanceCourseDto> getAttendanceCourseList(Map<String, Object> map);

    List<TeacherToDoDto> getTeacherToDoList(Map<String, Object> map);
}
